﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Chilis.CRM.TransferObjects;
using System.Data.SqlClient;
using System.Data;

namespace Chilis.CRM.DataAccess
{
    public class DCliente : Conexion
    {

        
       static DCliente()
       {
       }

       private DCliente()
       {
       }

       private static DCliente _instancia = new DCliente();
       public static DCliente Instancia
       {
           get { return _instancia; }
       }
         

       public IList<Cliente> ListarClientesRFM()
       {
           string qry = "usp_ListarClientesRFM";
           var db = CrearBaseDatos();
           var ds = db.ExecuteDataSet(qry);
           return CreaListaCLientes(ds.Tables[0]);

       }
       #region Helper Tipo Publicacion
       private Cliente CreaCliente(DataRow fila){
           var cliente = new Cliente();
           cliente.IdCliente = fila.Field<int>("IdCliente");
           cliente.Recency = fila.Field<int>("Recency");
           cliente.Frecuency = fila.Field<int>("Frecuency");
           cliente.Monetary = fila.Field<Decimal>("Monetary");
           return cliente;
       } 

       private IList<Cliente> CreaListaCLientes(DataTable tabla){
           var lista = new List<Cliente>();
           foreach (DataRow fila in tabla.Rows)
           {
               lista.Add(CreaCliente(fila));
           }
           return lista;
       }
       #endregion

    }
}
